"""
书架管理系统

背景：
你家里的书架上放满了各种书籍，查找起来不方便。为了更好地管理书籍，你决定设计一个简单的程序来帮助你记录书籍信息，并实现一些基本的功能。

要求：
请定义一个名为 Book 的类和一个名为 Bookshelf 的类，完成以下功能：

  功能1：创建书籍
    类 Book 表示一本书，包含以下属性：
      title：书名
      author：作者
      pages：页数
      为 Book 类定义一个方法 info()，用于返回该书的详细信息（例如："《书名》 by 作者, 页数: 300 页"）。

  功能2：管理书架
    类 Bookshelf 表示一个书架，包含以下功能：
      添加书籍：一个方法 add_book(book)，将一本书添加到书架上。
      显示所有书籍：一个方法 list_books()，按顺序列出书架上所有书籍的详细信息。
      查找书籍：一个方法 find_book_by_title(title)，根据书名查找书籍，如果找到，则返回书的详细信息；如果没有找到，则提示“未找到书籍”。

说明：
  编写主程序部分，创建一个 Bookshelf 对象，并添加至少 3 本书（由用户输入书籍信息）。
  添加后，展示书架上所有书籍的详细信息。
  让用户输入书名查找书籍，并显示查找结果。
"""

class Book:
    def __init__(self, title, author, pages):
        self.title = title
        self.author = author
        self.pages = pages

    def info(self):
        return f"《{self.title}》 by {self.author}, 页数: {self.pages} 页"


class Bookshelf:
    def __init__(self):
        self.books = []

    def add_book(self, book):
        self.books.append(book)

    def list_books(self):
        for book in self.books:
            print(book.info())

    def find_book_by_title(self, title):
        for book in self.books:
            if book.title == title:
                return book.info()
        return "未找到书籍"


def main():
    bookshelf = Bookshelf()
    for i in range(3):
        title = input(f"请输入第 {i + 1} 本书的书名: ")
        author = input(f"请输入第 {i + 1} 本书的作者: ")
        pages = int(input(f"请输入第 {i + 1} 本书的页数: "))
        book = Book(title, author, pages)
        bookshelf.add_book(book)
    bookshelf.list_books()
    search_title = input("请输入要查找的书名: ")
    result = bookshelf.find_book_by_title(search_title)
    print(result)


if __name__ == "__main__":
    main()